package org.flexqueries2.utils.date
{
	import mx.formatters.NumberFormatter;

	public class StringUtils
	{
		/**
		 * Complete une chaine à gauche avec le caractere fourni
		 * jusqu'à obtenir la longeur désirée
		 */ 
		
		public static function leftPad(str:String, char:String, size:int):String
		{
			var finalStr:String = '';
			
			for(var i:int=0;i<size - str.length;i++)
			{
				finalStr += char;
			}
			finalStr += str;
			
			return finalStr;
		}
		
		/**
		 * Complete une chaine à droite avec le caractere fourni
		 * jusqu'à obtenir la longeur désirée
		 */ 
		public static function rightPad(str:String, char:String, size:int):String
		{
			var finalStr:String = str;
			
			for(var i:int=0;i<size - str.length;i++)
			{
				finalStr += char;
			}
			
			return finalStr;
		}
		
		public static function formatSize(size:Number):String
		{
			var output:String;
			
			var level:Number = 0;
			while(size / 1024 > 1)
			{
				size /= 1024;
				level++;
			}
			
			var formatter:NumberFormatter = new NumberFormatter();
			formatter.precision = 2;
			
			output = formatter.format(size) + ' ';
			switch(level)
			{
				case 0:
					output += 'o';
					break;
				case 1:
					output += 'Ko';
					break;
				case 2:
					output += 'Mo';
					break;
				case 3:
					output += 'Go';
					break;
				case 4:
					output += 'To';
					break;
				case 5:
					output += 'Po';
					break;												
			}
			
			return output;
			
		}
		
		public static function join(separator:String, array:Array):String
		{
			var out:String = "";
			for(var i:Number = 0; i< array.length;i++)
			{
				if(i>0)
					out += separator;
				
				out += array[i].toString();
					
			}
			
			return out;
		}
	}
}